import { Rectangle } from './Rectangle'

export class Bird extends Rectangle{
  constructor(dom) {
    super(33,26,100,100,0,100,dom)
    // 重力加速度
    this.g = 70
    // 开一个定时器，翅膀不断扇动
    this.timer = null
    // 状态
    this.status = 1
  }
  /**
   * 开始扇动
   */
  startwith() {
    if (this.timer) return
    this.timer = setInterval(() => {
      this.status ++ 
      if (this.status === 4) {
        this.status = 1
      }
      this.render()
    },300)
  }
  /**
   * 停止
   */
  endwith() {
    clearInterval(this.timer)
    this.timer = null
  }

  /**
   * 重写父类的move方法
   * @param {number} duration
   */
  move(duration) {
    super.move(duration)
    this.render()
  }
  
  /**
   * 重写onMove方法，如果到达边界，做出限制
   */
  onMove() {
    if (this.y >= 448) {
      this.y = 0
    } else if (this.y === 0) {
      this.y = 0
    }
  }
  /**
   * 重写父类的render方法
   */
  render() {
    this.dom.className = `bird swing${this.status}`
    super.render()
  }
  /**
   * 鸟独有的弹跳
   */
  bounce() {
    this.y -= this.g 
  }
}